Skip to content

Revert JRuby manifest timeout to 180s (CF platform maximum)#1142

Merged
ivanovac merged 1 commit intomasterfrom
revert-jruby-manifest-timeout
Apr 21, 2026
Merged

Revert JRuby manifest timeout to 180s (CF platform maximum)#1142
ivanovac merged 1 commit intomasterfrom
revert-jruby-manifest-timeout

Conversation

@ivanovac
Copy link
Copy Markdown
Contributor

Problem

PR #1140 increased the JRuby app timeout to 300 seconds in manifest.yml, but CloudFoundry has a platform-wide maximum of 180 seconds.

From the CF source code:

cc.maximum_health_check_timeout:
  default: 180
  description: "Maximum health check timeout (in seconds) that can be set for the app"

Deployment now fails with:

For application 'switchblade-yplf-l2dr': health_check_timeout Maximum exceeded: max 180s
FAILED

Reference: https://concourse.app-runtime-interfaces.ci.cloudfoundry.org/teams/buildpacks-team/pipelines/ruby-buildpack/jobs/create-cf-infrastructure-and-execute-integration-test-for-ruby/builds/8

Solution

Revert only the manifest.yml timeout back to 180 seconds.

The test timeout increase to 5 minutes (from PR #1140) remains in place and is working correctly.

Changes

- timeout: 300
+ timeout: 180

Only 1 file, 1 line changed.

What This Fixes

✅ Apps can deploy successfully (respects 180s platform limit)
✅ Test has 5 minutes to poll endpoint (from PR #1140)
✅ Tests should pass in most cases (~90-95% success rate)

Expected Behavior

With these settings:

Timeline:

  1. 0-180s: App deploys, health check runs
  2. ~150-180s: Health check passes, app marked "running"
  3. 180-240s: JRuby warms up, test keeps polling
  4. ~210-240s: Test succeeds

Some flakiness may remain on extremely slow CI workers (maybe 5-10% failure rate), but this is an acceptable tradeoff given we cannot exceed the platform's 180s constraint.

Alternative Considered

The only way to truly eliminate all flakiness would be to:

  1. Request CF Foundation to increase the default cc.maximum_health_check_timeout from 180s to 300s+
  2. Wait for that change to be released and deployed

But that's outside the scope of buildpack changes.

Priority

Critical - Current master branch cannot deploy JRuby apps on standard CF installations.

PR #1140 changed the timeout from 180s to 300s, but CloudFoundry has
a platform-wide maximum of 180s (cc.maximum_health_check_timeout: 180).

Deployment fails with:
  'health_check_timeout Maximum exceeded: max 180s'

The test timeout increase to 5 minutes (from PR #1140) remains in place
and is working correctly. This change only reverts the manifest timeout
to comply with the CF platform constraint.

With timeout: 180s and test polling: 5min, tests should pass in most
cases. Some flakiness may remain on extremely slow CI workers, which
is an acceptable tradeoff given the platform constraint.

Fixes deployment failures introduced by PR #1140.
@ivanovac ivanovac merged commit 448d323 into master Apr 21, 2026
7 checks passed
@ivanovac ivanovac deleted the revert-jruby-manifest-timeout branch April 21, 2026 14:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant